package com.syh.jn.scm.domain.supplier.repository.stock;

import cn.redscarf.commons.wrapper.Wrapper;
import com.syh.core.ddd.infrastructure.repository.ReadRepo;
import com.syh.jn.scm.domain.supplier.entity.stock.StockOtherInBill;
import com.syh.jn.scm.domain.supplier.entity.stock.StockOtherInBillItem;
import com.syh.jn.scm.dto.supplier.stock.StockOtherInBillItemVo;

import java.util.List;

/**
 * 其他入库
 */
public interface StockOtherInBillReadRepository extends ReadRepo<StockOtherInBill,Long> {

  /**
   * 重载getById,选择是否包含item
   * @param id
   * @param haveItems
   * @return
   */
  StockOtherInBill getById(Long id, boolean haveItems);

  /**
   * 根据订单项id获取订单项
   * @param id
   * @return
   */
  StockOtherInBillItem getItemByItemId(Long id);

  /**
   * 根据其他入库单id查找其他入库单项
   * @param stockOtherInBillId
   * @return
   */
  List<StockOtherInBillItemVo> findStockOtherInBillItemVoByBillId(Long stockOtherInBillId);

  /**
   * 分页查找出入库单项
   * @param wrapper
   * @param startRow
   * @param count
   * @return
   */
  List<StockOtherInBillItemVo> findStockOtherInBillItemVoListPage(Wrapper wrapper, Integer startRow, Integer count);

  /**
   * 查找出入库单项数量
   * @param wrapper
   * @return
   */
  int findStockOtherInBillItemVoCount(Wrapper wrapper);

}
